Pular para o conteúdo principal

Identificação de Usuário em Eventos via MQTT

Como cruzar informações para identificar o usuário em mensagens MQTT

Em muitos cenários operacionais, identificar o usuário responsável por um evento é fundamental para análises, ações contextuais e auditoria. Abaixo, listamos três abordagens possíveis para realizar essa identificação com base em práticas técnicas seguras e compatíveis com as diretrizes de privacidade.

1 - Identificação via Advertisement-Key com Timestamp (método recomendado)

Como funciona:

  • No momento do cadastro ou login do usuário no aplicativo, capture o advertisement-key e associe-o ao perfil do usuário em seu banco de dados.
  • Ao receber um EVENT_IN no tópico MQTT, utilize o advertisement-key como chave de busca para mapear o usuário correspondente.

Considerações importantes:

O advertisement-key pode ser alterado pelo sistema operacional em algumas situações. Para garantir a consistência da identificação, recomenda-se:

  • Atualizar o adv-key sempre que o usuário abrir o aplicativo;
  • Implementar o callback do Google que notifica quando o adv-key é modificado;
  • Tratar o adv-key como um identificador mutável, realizando verificações regulares de atualização.

Casos comuns de alteração do advertisement-key:

  • O usuário redefine manualmente o ID nas configurações do dispositivo;
  • O app é reinstalado em modo anônimo, resultando em um novo adv-key;
  • Aplicativos com funcionalidades de proteção à privacidade podem impedir a persistência do advertisement-key.

2 - Utilização do campo notification_name (método alternativo com restrições)

Como funciona:

É possível enviar um identificador adicional no campo notification_name que acompanha o EVENT_IN via MQTT. Esse campo pode ser utilizado, por exemplo, para enviar um session-id criptografado.

Limitações e riscos:

  • Privacidade: Essa abordagem pode trazer riscos relacionados à LGPD, pois permite a associação indireta de dados sensíveis.
  • Segurança: Se mal implementada, pode expor dados identificáveis em trânsito.

Importante: campo notification_name não é enviado por padrão. Caso deseje utilizá-lo, solicite sua ativação ao suporte técnico.

3 - Identificação via notification-token (método para utilizar com firebase)

Como funciona:

  • Utiliza-se o notificationToken gerado pelo Firebase Cloud Messaging (FCM) como identificador de eventos oriundos de um usuário/dispositivo.
  • Capture o notificationToken e associe-o ao perfil do usuário em seu banco de dados.
  • Ao receber o notificationToken no evento MQTT, o cliente pode consultar seu banco de dados do FCM para mapear o token ao usuário correspondente e validar sua autenticidade.

Considerações importantes:

  • O notificationToken é um identificador dinâmico e seguro vinculado ao dispositivo e à instância da aplicação.
  • A abordagem é robusta, porém é necessário que haja uma integração técnica com o Firebase para validação dos tokens e atualização periódica em caso de revogação ou atualização de dispositivos por parte do cliente.

Acessa a documentação dos métodos para cada sistema operacional: